package com.limao.CacheManager;

import com.Hazelcast.Cache;
import com.Hazelcast.CacheFactory;
import com.limao.DBDataClass.SysIDEDataClass;
import com.limao.DBProvider.IDEProvider;
import com.limao.cache.BasicModule;

public class table_ideCacheManager  extends BasicModule{

	private IDEProvider provider;

    private static table_ideCacheManager instance;

	public static table_ideCacheManager getInstance() {
	        return instance;
	}
	     
	 private Cache<String, SysIDEDataClass> table_ideManagerCache;

	public table_ideCacheManager() {
    	super("tableideCacheManager");
    	table_ideManagerCache = CacheFactory.createCache("cd_tableIdeManagerCache");
		
	    initProvider();
	}
    
    @Override
	public void initialize() {
        super.initialize();
        instance=this;
    }
	
    //**********************************************************************************8

     public SysIDEDataClass load_table_ide(String table_ide) {
        if (table_ide == null) {
            return null;
        }
        // Make sure that the usertable_ide is valid.
        table_ide = table_ide.trim().toLowerCase();
        SysIDEDataClass obj = table_ideManagerCache.get(table_ide);
        if (obj == null) {
            synchronized (table_ide.intern()) {
            	obj = table_ideManagerCache.get(table_ide);
                if (obj == null) {
                	obj = provider.Load_table_ide(table_ide);
                	table_ideManagerCache.put(table_ide, obj);
                }
            }
        }
        return obj;
    }

    public long Load_Table_ide_num(String table_ide ) {
        if (table_ide == null) {
            return 0;
        }
        // Make sure that the usertable_ide is valid.
        table_ide = table_ide.trim().toLowerCase();
        SysIDEDataClass obj = table_ideManagerCache.get(table_ide );
        if (obj == null) {
            synchronized (table_ide.intern()) {
            	obj = table_ideManagerCache.get(table_ide );
                if (obj == null) {
                	obj = provider.Load_table_ide(table_ide);
                	if(obj!=null)
                		table_ideManagerCache.put(table_ide, obj);
                }
            }
        }
        if(obj == null)  
        	return 0;
        else
        return obj.user_num;
    }

    public SysIDEDataClass Updata_Table_ide_num(String table_ide,long m )
    {
    	SysIDEDataClass obj=provider.Updata_table_ide(table_ide, m);
        return obj;
    } 

  	
    public String get_Table_ide_num(String table_ide)
    {
    	return get_Table_ide_num(table_ide,1);
    }
    

	public String get_Table_ide_num(String table_ide, int n)
	{
		SysIDEDataClass obj=load_table_ide(table_ide );
		long m=obj.user_num+n;
	  	if(obj!=null)
	  	{
	  		obj.user_num=m;
    		table_ideManagerCache.put(table_ide, obj);
	  	}
		Updata_Table_ide_num(table_ide,m );

		return m+"";
	}
	


    public String get_Table_ide_Tablename(String table_ide )
    {
    	
    	SysIDEDataClass obj=load_table_ide(table_ide );
    	if(obj!=null)
    		return obj.table_name;
    	else
    		return null;
    }     
 
    //**********************************************************************************8
 
    private void initProvider() {
        if (provider == null ) {
            try {
                provider =IDEProvider.getInstance();
            }
            catch (Exception e) {
            	e.printStackTrace();
            }
        }
    }
  
}




